-- 2009-06-19 -- Version 0.2 -- By Marco Brunetta ( local theRollWidth = 725 rollout renderSorterRoll "RenderSorter" ( local renderedImages = #() local currentIndex = 1 local currentBitmap = bitmap renderWidth renderHeight color:black button addRenderBtn "Add Render" width:100 pos:[theRollWidth/2-225,10] button removeRenderBtn "Remove Render" width:100 pos:[theRollWidth/2+125,10] enabled:false checkBox autoAddRenders "Auto Add Renders" pos:[theRollWidth/2+240,13] enabled:false button firstRender "<<" width:50 pos:[theRollWidth/2-115,10] enabled:false button prevRender "<" width:50 pos:[theRollWidth/2-55,10] enabled:false button nextRender ">" width:50 pos:[theRollWidth/2+5,10] button lastRender ">>" width:50 pos:[theRollWidth/2+65,10] enabled:false ImgTag bitmap01 width:133 height:100 bitmap:(bitmap 133 100 color:black) style:#bmp_center pos:[10,40] label label01 "-2" pos:(bitmap01.pos+[60,105]) ImgTag bitmap02 width:133 height:100 bitmap:(bitmap 133 100 color:black) style:#bmp_center pos:[bitmap01.pos[1]+143,40] label label02 "-1" pos:(bitmap02.pos+[60,105]) bitmap bitmap03 width:133 height:100 bitmap:(bitmap 133 100 color:black) pos:[bitmap02.pos[1]+143,40] label label03 "0" pos:(bitmap03.pos+[60,105]) ImgTag bitmap04 width:133 height:100 bitmap:(bitmap 133 100 color:black) style:#bmp_center pos:[bitmap03.pos[1]+143,40] label label04 "1" pos:(bitmap04.pos+[60,105]) ImgTag bitmap05 width:133 height:100 bitmap:(bitmap 133 100 color:black) style:#bmp_center pos:[bitmap04.pos[1]+143,40] label label05 "2" pos:(bitmap05.pos+[60,105]) fn generatePreview sourceBitmap destinationControl = ( local tempBitmap = destinationControl.bitmap IF sourceBitmap != undefined THEN ( copy sourceBitmap tempBitmap destinationControl.bitmap = tempBitmap ) ELSE ( destinationControl.bitmap = (bitmap 133 100 color:black) ) ) ON addRenderBtn PRESSED DO ( local newBitmap = (render vfb:false) copy newBitmap currentBitmap display currentBitmap renderedImages[currentIndex] = copy currentBitmap generatePreview currentBitmap bitmap03 ) ON removeRenderBtn PRESSED DO ( ) ON prevRender PRESSED DO ( currentIndex = (currentIndex - 1) IF currentIndex == 1 DO prevRender.enabled = false TRY (generatePreview renderedImages[currentIndex-2] bitmap01) CATCH( bitmap01.bitmap =(bitmap 133 100 color:black) ) label01.text = ((label01.text as integer)-1) as string TRY (generatePreview renderedImages[currentIndex-1] bitmap02) CATCH( bitmap02.bitmap =(bitmap 133 100 color:black) ) label02.text = ((label02.text as integer)-1) as string TRY (generatePreview renderedImages[currentIndex] bitmap03) CATCH( bitmap03.bitmap =(bitmap 133 100 color:black) ) label03.text = ((label03.text as integer)-1) as string TRY (generatePreview renderedImages[currentIndex+1] bitmap04) CATCH( bitmap04.bitmap =(bitmap 133 100 color:black) ) label04.text = ((label04.text as integer)-1) as string TRY (generatePreview renderedImages[currentIndex+2] bitmap05) CATCH( bitmap05.bitmap =(bitmap 133 100 color:black) ) label05.text = ((label05.text as integer)-1) as string copy renderedImages[currentIndex] currentBitmap display currentBitmap ) ON nextRender PRESSED DO ( prevRender.enabled = true currentIndex = currentIndex + 1 TRY (generatePreview renderedImages[currentIndex-2] bitmap01) CATCH(bitmap01.bitmap =(bitmap 133 100 color:black)) label01.text = ((label01.text as integer)+1) as string TRY (generatePreview renderedImages[currentIndex-1] bitmap02) CATCH(bitmap02.bitmap =(bitmap 133 100 color:black)) label02.text = ((label02.text as integer)+1) as string TRY (generatePreview renderedImages[currentIndex] bitmap03) CATCH(bitmap03.bitmap =(bitmap 133 100 color:black)) label03.text = ((label03.text as integer)+1) as string TRY (generatePreview renderedImages[currentIndex+1] bitmap04) CATCH(bitmap04.bitmap =(bitmap 133 100 color:black)) label04.text = ((label04.text as integer)+1) as string TRY (generatePreview renderedImages[currentIndex+2] bitmap05) CATCH(bitmap05.bitmap =(bitmap 133 100 color:black)) label05.text = ((label05.text as integer)+1) as string copy renderedImages[currentIndex] currentBitmap display currentBitmap ) ) createDialog renderSorterRoll width:theRollWidth pos:[150,550] )